Desynchronized Multi-State Abstractions for Open Programs in Dynamic Languages

نویسندگان

  • Arlen Cox
  • Bor-Yuh Evan Chang
  • Xavier Rival
چکیده

Dynamic language library developers face a challenging problem: ensuring that their libraries will behave correctly for a wide variety of client programs without having access to those client programs. This problem stems from the common use of two defining features for dynamic languages: callbacks into client code and complex manipulation of attribute names within objects. To remedy this problem, we introduce two state-spanning abstractions. To analyze callbacks, the first abstraction desynchronizes a heap, allowing partitions of the heap that may be affected by a callback to an unknown function to be frozen in the state prior to the call. To analyze object attribute manipulation, building upon an abstraction for dynamic language heaps, the second abstraction tracks attribute name/value pairs across the execution of a library. We implement these abstractions and use them to verify modular specifications of class-, trait-, and mixin-implementing libraries.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Can We Efficiently Check Concurrent Programs Under Relaxed Memory Models in Maude?

Relaxed memory models offer suitable abstractions of the actual optimizations offered by multi-core architectures and by compilers of concurrent programming languages. Using such abstractions for verification purposes is challenging in part due to their inherent non-determinism which contributes to the state space explosion. Several techniques have been proposed to mitigate those problems so to...

متن کامل

Zing: Exploiting Program Structure for Model Checking Concurrent Software

Model checking is a technique for finding bugs in systems by systematically exploring their state spaces. We wish to extract sound models from concurrent programs automatically and check the behaviors of these models systematically. The zing project is an effort to build a flexible infrastructure to represent and model check abstractions of large concurrent software. To support automatic extrac...

متن کامل

Mayur Naik — Research Statement

Modern computing platforms comprising commercial clouds, multi-core laptops and desktops, and smartphones, tablets, and wearables pose significant challenges to developing high-quality software in aspects such as reliability, security, performance, scalability, and energy efficiency. My research in the area of programming languages and software engineering addresses this problem using a general...

متن کامل

Languages for Reactive Specifications: Synchrony Vs Asynchrony

Asynchronous and Synchronous languages have been in use for the speciication of reactive systems. One of the main distinguishing features of these two classes lies in the way nondeterminism is used for the specii-cation of programs. From this viewpoint, we analyze CSP (a typical asynchronous language) and Esterel (a synchronous language). The synchronous language Esterel is based on the notions...

متن کامل

Advanced Querying for Property Checking

Extended weighted pushdown systems (EWPDSs) are an extension of pushdown systems that incorporate infinite-state data abstractions. Nested-word automata (NWAs) are able to recognize languages that exhibit context-free properties, while retaining many of the decidability properties of finite automata. We study property checking of programs where the program model is an EWPDS and the property is ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015